package com.ktg.mes.rec.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.ktg.common.core.redis.RedisCache;
import com.ktg.mes.pro.domain.ProTaskDeviceProcess;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

import java.util.Date;
import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity;


/**
 * 工序检测记录对象 rec_lnspection_record
 *
 * @author byteco
 * @date 2022-11-04
 */

@Data
@Accessors(chain = true)
@TableName("rec_lnspection_record")
public class RecLnspectionRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录id */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 是否完工 */
    @Excel(name = "是否完工")
    @TableField(exist = false)
    private boolean finished;

    /** 桶编号 */
    @Excel(name = "桶编号")
    private String toolTypeCode;


    /** 桶名称 */
    @Excel(name = "桶名称")
    private String toolTypeName;


    /** 设备ID */
    @Excel(name = "设备ID")
    private Long machineryId;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String machineryCode;


    /** 设备名称 */
    @Excel(name = "设备名称")
    private String machineryName;


    /** 工序id */
    @Excel(name = "工序id")
    private Long processesId;

    /** 工序名称 */
    public String processesName;

    /** 型号 */
    @Excel(name = "型号")
    private String specification;


    /** 任务id */
    @Excel(name = "任务id")
    private Long taskId;


    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;


    /** 生产批次 */
    @Excel(name = "生产批次")
    private String batchNo;

    /** 工作站编号 */
    @Excel(name = "工作站编号")
    private String workstationCode;



    /** 工作类型 1正常 2返工 */
    @Excel(name = "工作类型 1正常 2返工")
    private String workType;


    /** 生产关联（排产任务，生产设备，工序） */
    @Excel(name = "生产关联工艺记录", readConverterExp = "排=产任务，生产设备，工序")
    private Long taskDeviceProcessRecordId;


    /** 字典 */
    @Excel(name = "字典")
    private String dicText;



    /** 研磨-分散开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 研磨-分散温度 */
    @Excel(name = "温度")
    private Double wenDu;

    /** 研磨-分散时长 */
    @Excel(name = "时长")
    private Integer shiChang;

    /** 研磨-分散 上衣状态 */
    @Excel(name = "上衣状态")
    private Double lastStatus;

    /** 研磨-分散 最后标志 */
    @Excel(name = "最后标志")
    private Integer lastIndex;


    /**
     * 获取设备当前生产的工序
     * @return
     */
    public static RecLnspectionRecord getMachineryNowProductProcess(RedisCache redisCache,Long machineryId){
       return redisCache.getCacheObject("获取设备当前工艺："+machineryId);
    }


    /**
     * 获取设备当前生产的工序
     * @return
     */
    public void setMachineryNowProductProcessToRedisCache(RedisCache redisCache){
        redisCache.setCacheObject("获取设备当前工艺："+getMachineryId(),this);
    }

}
